home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dxilig.mf < prev    next >
Text File  |  1994-04-12  |  11KB  |  256 lines

  1. % This is DXILIG.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %   italic  dotless i,j; ligatures  ff, fi, fl, ffi, ffl
  11. %
  12.  
  13. numeric itc#; % modified italic correction on `f' and `ff'
  14. itc#=(asc_height#-x_height#)*slant+.75u#;
  15.  
  16. dcchar "Dotless italic letter i";
  17. beginchar(oct"031",5u#,x_height#,0);
  18. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  19. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  20. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  21. hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed);  % hooks
  22. filldraw stroke z2e--z3e;  % stem
  23. penlabels(0,1,2,3,4,5); endchar;
  24.  
  25. dcchar "Dotless italic letter j";
  26. beginchar(oct"032",5.5u#,x_height#,desc_depth#);
  27. italcorr x_height#*slant+.5stem#-2u#;
  28. adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
  29. x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
  30. hook_in(0,1,2);  % opening hook
  31. pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
  32. bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
  33. x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
  34. filldraw stroke z2e---z3e...{left}z4e;  % stem and arc
  35. bulb(4,5,6);  % bulb
  36. penlabels(0,1,2,3,4,5,6); endchar;
  37.  
  38. numeric itc; % modified italic correction on `f' and `ff'
  39. itc=(asc_height#-x_height#)*slant+.75u#;
  40.  
  41. dcchar "Italic ligature ff";
  42. beginchar(oct"033",
  43. %if monospace: 12u# else:
  44. (5u#+max(1.5u#,stem#)+max(3.5u#,2flare#))+2letter_fit#, %  fi,
  45.  asc_height#,desc_depth#);
  46. italcorr asc_height#*slant+.75u#;
  47. normal_adjust_fit(0,0); pickup fine.nib;
  48. z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 4.3u else: 4.8u fi +2letter_fit,0);
  49. .5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
  50. numeric theta; theta=angle(z88-z89);
  51. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  52. pos3(.5[hair,stem],180); pos4(stem,theta+90);
  53. pos5(stem,theta-90); pos6(.5[hair,stem],0);
  54. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  55. if monospace: rt x1r=hround(.5w+.75u);
  56. else:
  57.  rt x1r=hround(.5w+1.25u);
  58. fi
  59. %if monospace: lft x8r=hround-.35u;
  60. %else:
  61. lft x8r=hround-.35u;
  62. %fi
  63. x2=.5[x1,x4]; x7=.6[x8,x5];
  64. y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
  65. y4=.25[x_height,h]; y5=.5[-d,y4];
  66. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  67. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  68. bulb(2,1,0); bulb(7,8,9);  % left bulbs
  69. filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
  70. filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
  71. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
  72. pos10(flare,0); pos11(hair,0); pos12(vair,90);
  73. pos13(.5[hair,stem],180); pos14(stem,theta+90);
  74. pos15(stem,theta-90); pos16(.5[hair,stem],0);
  75. pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
  76. rt x11r=hround(w+.25u);
  77. if monospace: lft x18r=hround(.5w-.75u);
  78. else:         lft x18r=hround(.5w-1.25u); fi
  79. x12=.6[x11,x14]; x17=.5[x18,x15];
  80. x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
  81. y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
  82. bulb(12,11,10); bulb(17,18,19);  % right bulbs
  83. filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
  84. filldraw z14r--z15l--z15r--z14l--cycle;  % right stem
  85. filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
  86. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  87. top y20r=top y21r=x_height;
  88. lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
  89. filldraw stroke z20e--z21e;  %  crossbar
  90. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
  91.  20,21,88,89,98,99); endchar;
  92.  
  93.  
  94. dcchar "Italic ligature fi";
  95. beginchar(oct"034",if monospace: 4.5u# else: 6.5u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
  96.  +2letter_fit#,asc_height#,desc_depth#);
  97. italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
  98. normal_adjust_fit(0,0); pickup fine.nib;
  99. .5[x88,x89]=.5(w-if monospace: 2u else: 4u fi -2letter_fit); x89-x88=u; y88=h; y89=-d;
  100. numeric theta; theta=angle(z88-z89);
  101. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  102. pos3(.5[hair,stem],180); pos4(stem,theta+90);
  103. pos5(stem,theta-90); pos6(.5[hair,stem],0);
  104. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  105. pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
  106. x12=x11; x14=w; hook_out(12,13,14);  % closing hook
  107. x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
  108. y9-.5flare=vround-.85d; bot y7r=-d-oo;
  109. y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
  110. y4=.25[x_height,h]; y5=.5[-d,y4];
  111. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  112. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  113. bulb(2,1,0); bulb(7,8,9);  % bulbs
  114. filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper arc
  115. filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
  116. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
  117. top y11=x_height; filldraw stroke z11e--z12e;  % right stem
  118. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  119. top y20r=top y21r=x_height;
  120. lft x20=lft x4r-.5stem-u; x21=x11;
  121. filldraw stroke z20e--z21e;  %  crossbar
  122. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
  123.  
  124. dcchar "Italic ligature fl";
  125. beginchar(oct"035",if monospace: 5u# else: 7u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
  126.  +2letter_fit#,asc_height#,desc_depth#);
  127. italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
  128. normal_adjust_fit(0,0); pickup fine.nib;
  129. .5[x88,x89]=.5(w-if monospace: 3.5u else: 4.5u fi -2letter_fit);
  130. x89-x88=u; y88=h; y89=-d;
  131. numeric theta; theta=angle(z88-z89);
  132. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  133. pos3(.5[hair,stem],180); pos4(stem,theta+90);
  134. pos5(stem,theta-90); pos6(.5[hair,stem],0);
  135. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  136. pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
  137. x12=x11; x14=w; hook_out(12,13,14);  % closing hook
  138. if monospace: lft x8r=hround-.55u;
  139. else: lft x8r=hround-.35u; fi
  140. x2=.5[x1,x4]; x7=.6[x8,x5];
  141. y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
  142. y4=.25[x_height,h]; y5=.5[-d,y4];
  143. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  144. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  145. bulb(2,1,0); bulb(7,8,9);  % bulbs
  146. filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper arc
  147. filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
  148. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
  149. top y11=h; filldraw stroke z11e--z12e;  % right stem
  150. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  151. top y20r=top y21r=x_height;
  152. lft x20=lft x4r-.5stem-u; x21=x11;
  153. filldraw stroke z20e--z21e;  %  crossbar
  154. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
  155.  
  156.  
  157. dcchar "Italic ligature ffi";
  158. beginchar(oct"036",
  159. if monospace: 7.75u# else: 11.75u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
  160.  +4letter_fit#,asc_height#,desc_depth#);
  161. italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
  162. normal_adjust_fit(0,0); pickup fine.nib;
  163. z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi +2letter_fit,0);
  164. numeric theta,mid_f;
  165. mid_f=.5[x88,x99]=.5(w-if monospace: 2.25u else: 4.25u fi -2letter_fit);
  166. x89-x88=u;
  167. y98=h; y99=-d; theta=angle(z88-z89);
  168. pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
  169. x22=x21; x24=w; hook_out(22,23,24);  % closing hook
  170. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  171. pos3(.5[hair,stem],180); pos4(stem,theta+90);
  172. pos5(stem,theta-90); pos6(.5[hair,stem],0);
  173. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  174. if monospace: rt x1r=hround(mid_f+u);
  175. else:         rt x1r=hround(mid_f+1.75u); fi
  176. if monospace: lft x8r=hround -.65u;
  177. else:         lft x8r=hround-.35u; fi
  178. x2=.5[x1,x4]; x7=.6[x8,x5];
  179. y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
  180. y4=.25[x_height,h]; y5=.5[-d,y4];
  181. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  182. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  183. bulb(2,1,0); bulb(7,8,9);  % left bulbs
  184. filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
  185. filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
  186. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
  187. pos10(flare,0); pos11(hair,0); pos12(vair,90);
  188. pos13(.5[hair,stem],180); pos14(stem,theta+90);
  189. pos15(stem,theta-90); pos16(.5[hair,stem],0);
  190. pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
  191. x11r=x21r; lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
  192. x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
  193. y10+.5flare=vround .85[x_height,h];
  194. y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
  195. bulb(12,11,10); bulb(17,18,19);  % right bulbs
  196. filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
  197. filldraw z14r--z15l--z15r--z14l--cycle;  % middle stem
  198. filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
  199. top y21=x_height; filldraw stroke z21e--z22e;  % right stem
  200. pickup crisp.nib; pos30(bar,90); pos31(bar,90);
  201. top y30r=top y31r=x_height;
  202. lft x30=lft x4r-.5stem-u; x31=x21;
  203. filldraw stroke z30e--z31e;  %  crossbar
  204. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
  205.  20,21,22,23,24,30,31,88,89,98,99); endchar;
  206.  
  207.  
  208. dcchar "Italic ligature ffl";
  209. beginchar(oct"037",
  210.   if monospace: 8u# else: 12u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
  211.      +4letter_fit#,asc_height#,desc_depth#);
  212. italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
  213. normal_adjust_fit(0,0); pickup fine.nib;
  214. z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi+2letter_fit,0);
  215. numeric theta,mid_f;
  216. mid_f=.5[x88,x99]=.5(w-if monospace: 2u else: 4.5u fi-2letter_fit); x89-x88=u;
  217. y98=h; y99=-d; theta=angle(z88-z89);
  218. pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
  219. x22=x21; x24=w; hook_out(22,23,24);  % closing hook
  220. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  221. pos3(.5[hair,stem],180); pos4(stem,theta+90);
  222. pos5(stem,theta-90); pos6(.5[hair,stem],0);
  223. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  224. if monospace: rt x1r=hround(mid_f+u);
  225. else:         rt x1r=hround(mid_f+1.25u); fi
  226. lft x8r=hround-.35u;
  227. x2=.5[x1,x4]; x7=.6[x8,x5];
  228. y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
  229. y4=.25[x_height,h]; y5=.5[-d,y4];
  230. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  231. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  232. bulb(2,1,0); bulb(7,8,9);  % left bulbs
  233. filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
  234. filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
  235. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
  236. pos10(flare,0); pos11(hair,0); pos12(vair,90);
  237. pos13(.5[hair,stem],180); pos14(stem,theta+90);
  238. pos15(stem,theta-90); pos16(.5[hair,stem],0);
  239. pos17(vair,-90); pos18(hair,-180); pos19(flare,-180); rt x11r=lft x21l;
  240. lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
  241. x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
  242. y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
  243. bulb(12,11,10); bulb(17,18,19);  % right bulbs
  244. filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
  245. filldraw z14r--z15l--z15r--z14l--cycle;  % middle stem
  246. filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
  247. top y21=h; filldraw stroke z21e--z22e;  % right stem
  248. pickup crisp.nib; pos30(bar,90); pos31(bar,90);
  249. top y30r=top y31r=x_height;
  250. lft x30=lft x4r-.5stem-u; x31=x21;
  251. filldraw stroke z30e--z31e;  %  crossbar
  252. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
  253.  20,21,22,23,24,30,31,88,89,98,99); endchar;
  254.  
  255. endinput;
  256.